<template>
	<view></view>
</template>

<script>
	export default{
		data(){
			return{
				orderSn:'',
				type:'wxpay',
			}
		},
		methods:{
			init(e){
				let _this = this;
				this.$wx.config({
				   debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
				   appId: e.app_id, // 必填，公众号的唯一标识
				   timestamp: e.timestamp, // 必填，生成签名的时间戳
				   nonceStr: e.nonceStr, // 必填，生成签名的随机串
				   signature: e.signature,// 必填，签名
				   jsApiList: ["chooseWXPay"] // 必填，需要使用的JS接口列表
				 });
				this.openPay(); //获取签名并后调用
				this.$wx.error(function(res){
					console.log("验证失败")
				});
			},
			openPay(){
				let _this = this;
				var sn = this.orderSn;
				var type = this.type;
				// if(sn == ''){
				// 	this.showMessage('订单号错误');return;
				// }
				this.$myRequest({
					method:'POST',
					url:'/api/order/pay',
					data:{
						sn:sn,
						type:type,
					},
				}).then(e=>{
					if(e.data.code == 1){
						var data = e.data.data;
						this.$wx.ready(function(){
							_this.$wx.chooseWXPay({
							  timestamp: data.timestamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
							  nonceStr: data.nonceStr, // 支付签名随机串，不长于 32 位
							  package: data.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）
							  signType: data.signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'
							  paySign: data.paySign, // 支付签名
							 //  success: function (res) {
								// // 支付成功后的回调函数
								// alert(JSON.stringify(res));
							 //  },
							  complete: function(res){
								var url = '#/pages/user/order-details/order-details?sn='+_this.orderSn; //用户订单详情
								if (res.errMsg == "chooseWXPay:ok") { 
									window.location.href = url;   
								}
								else if(res.errMsg == "chooseWXPay:cancel" ) {
									window.location.href = url;  
								}else if (res.errMsg == "chooseWXPay:fail") {
									window.location.href = url;  
								}
							  },
							});
						});
					}else{
						this.showMessage(e.data.msg);
					}
				})
			},
			goBack(){
				uni.reLaunch({
					url: '../user/order-details/order-details?sn='+this.orderSn
				})
			},
			showMessage(title){
				uni.showToast({
				    title: title,
				    duration: 3000,
					icon:"none",
				});
			},  
		},
		onLoad(e) {
			this.orderSn = e.sn;
			// 获取微信jsp签名
			this.$myRequest({
				method:'POST',
				url:'/api/wxset/jsapi',
			}).then(res=>{
				if(res.data.code == 1){
					this.wxconfig = res.data.data;
					this.init(this.wxconfig);
				}else{
					this.showMessage(res.data.msg);
				}
			})
		}
	}
</script>

<style>
</style>
